/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 * /api/viajes
 */

package ucab.desarrollo.viajesbook.api;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.context.ContextLoader;
import org.springframework.web.context.WebApplicationContext;
import ucab.desarrollo.viajesbook.beans.Usuario;
import ucab.desarrollo.viajesbook.persistencia.IUsuarioDAO;
import ucab.desarrollo.viajesbook.persistencia.IViajeDAO;

/**
 *
 * @author Magaly Romero
 */
public class ServletViajes extends HttpServlet {


    private WebApplicationContext ctx;
    String lugar, fechaini, fechafin;
    String hospedaje, tipo, nombre, correo,idViaje;
    int lugar4, ViajeCant;

    /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/xml;charset=UTF-8");

        PrintWriter out = response.getWriter();

        ctx = ContextLoader.getCurrentWebApplicationContext();

        IUsuarioDAO Usuario = (IUsuarioDAO) ctx.getBean("usuarioDAO");
        IViajeDAO ListaViajes = (IViajeDAO) ctx.getBean("viajeDAO");

        int para = Integer.parseInt(request.getParameter("id"));

        List devolverViajesdeUsuario = ListaViajes.devolverViajesdeUsuario(para);
        Usuario Usu = Usuario.buscarById(para);
        nombre = Usu.getUsuarionombre().toString();
        correo = Usu.getUsuariocorreoelectronico().toString();
        //List interna = (List) devolverViajesdeUsuario.get(0);
        //lugar = interna.get(0).toString();
        try {
            out.println("<VIAJES>");
            for (Iterator iterador = devolverViajesdeUsuario.listIterator(); iterador.hasNext();) {

                List interna = (List) iterador.next();
                lugar = interna.get(0).toString();
                fechaini = interna.get(1).toString();
                fechafin = interna.get(2).toString();
                hospedaje = interna.get(3).toString();
                lugar4 = Integer.parseInt(interna.get(4).toString());
                idViaje = interna.get(5).toString();


                if (lugar4 != 0) {
                    tipo = "Privado";
                } else {
                    tipo = "Publico";
                }
                out.println("<VIAJE>");
                out.println("<ID>");
                out.println(idViaje);
                out.println("</ID>");
                out.println("<USUARIO>");
                out.println(nombre);
                out.println("</USUARIO>");
                out.println("<CORREO>");
                out.println(correo);
                out.println("</CORREO>");
                out.println("<LUGAR>");
                out.println(lugar);
                out.println("</LUGAR>");
                out.println("<FECHAINICIAL>");
                out.println(fechaini);
                out.println("</FECHAINICIAL>");
                out.println("<FECHAFINAL>");
                out.println(fechafin);
                out.println("</FECHAFINAL>");
                out.println("<HOSPEDAJE>");
                out.println(hospedaje);
                out.println("</HOSPEDAJE>");
                out.println("<TIPO>");
                out.println(tipo);
                out.println("</TIPO>");
                out.println("</VIAJE>");
            }
            out.println("</VIAJES>");
        } finally {
            out.close();
        }
    }
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">

    /**
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException,
            IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException,
            IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
